package cn.yunhe.service.impl;

import cn.yunhe.dao.TagDao;
import cn.yunhe.entity.Tag;
import cn.yunhe.service.TagService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Service("tagService")
public class TagServiceImpl implements TagService {

    @Resource
    private TagDao tagDao;

    @Override
    public int addTag(Tag tag) {
        tag.setCreateTime(new Date());
      /*  if (tag.getTagName()==null&&tag.getCreator()==null&&tag.getCreateTime()==null&&tag.getIsPrivate()==null){
            return 0;
        }*/
        return tagDao.addTag(tag);
    }

    @Override
    public int delTag(Tag tag) {

        return tagDao.delTag(tag);
    }

    @Override
    public int updTag(Tag tag) {
     /*   if (tag.getTagName()==null&&tag.getCreator()==null&&tag.getCreateTime()==null&&tag.getIsPrivate()==null){
            return 0;
        }*/
        return tagDao.updTag(tag);
    }

    @Override
    public Tag getTagById(Tag tag) {
        return tagDao.getTagById(tag);
    }


    @Override
    public Page getTagListByPage(Map<String, Object> map) {
        Page page = new Page();

        //获取总条数
        page.setTotal(tagDao.getTagListCountByPage(map));
   //     System.out.println(tagDao.getTagListCountByPage(map));
        // 获取每页大小
        int pageSize = Integer.parseInt(String.valueOf(map.get("pageSize")));
        page.setPageSize(pageSize);

        // 获取当前页码
        int curPageNum = Integer.parseInt(String.valueOf(map.get("pageNum")));
//		page.setPageNum(curPageNum);
        // 计算出总页数
        page.setPageNum((int) (page.getTotal() / pageSize + (page.getTotal() % pageSize == 0 ? 0 : 1)));
        // 启用分页
        page = PageHelper.startPage(curPageNum, pageSize);
        // 查询列表
        List list = tagDao.getTagListByPage(map);
        return page;
    }


    public TagDao getTagDao() {
        return tagDao;
    }

    public void setTagDao(TagDao tagDao) {
        this.tagDao = tagDao;
    }
}
